/****************************************************************************
*					DomainFeatures
*
*	Description:	A class for representing a subset of variables and set of
*					its values with a feature index and weight index
*
****************************************************************************/

#ifndef _DomainFeatures_H
#define _DomainFeatures_H

#include <vector>

class DomainFeatures {
  private:

  protected:

  public:
	// vector of variable indexes in the domain
	std::vector <unsigned int> varsIDs;
	
	// vector of feature function indexes (different features can correspond to different values of variables in varsIDs)
	std::vector <unsigned int> featsIDs;
	
	// vector of indexes of weights of features is featsIDs (type 'int' is used since when there is no corresponding weight - it contains '-1' as a value)
	std::vector <int> weightsIDs;

	/* Functions */
	// default constructor that sets everything to zero size
	DomainFeatures() {
		varsIDs.clear();
		featsIDs.clear();
		weightsIDs.clear();
	}
	
}; // end of class

#endif // _DomainFeatures_H
